#include "config.h"
#include "gtkgstpaintableprivate.h"
-
#include "gtkgstsinkprivate.h"
+#include <gtk/gtk.h>
#include <gst/player/gstplayer-video-renderer.h>
+#include <gsk/gl/gskglrenderer.h>
#include <math.h>
"gl-context", self->context,
NULL);
+ if (self->context == NULL)
+ return sink;
+
glsinkbin = gst_element_factory_make ("glsinkbin", NULL);
g_object_set (glsinkbin, "sink", sink, NULL);
GdkSurface *surface)
{
GError *error = NULL;
+ GtkNative *native;
+ GskRenderer *renderer;
if (self->context)
return;
+ native = gtk_native_get_for_surface (surface);
+ renderer = gtk_native_get_renderer (native);
+ if (!GSK_IS_GL_RENDERER (renderer))
+ {
+ GST_INFO ("not using GL with a %s renderer\n", G_OBJECT_TYPE_NAME (renderer));
+ return;
+ }
+
self->context = gdk_surface_create_gl_context (surface, &error);
if (self->context == NULL)
{